rough prototype for rule coverage #472
Open
+167
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
as you mentioned earlier, it'd be interesting to have some form of coverage report on the rules.
I added logic for this to
src/rule_coverage.rs, which gets used inspeech.rsif the Cargo featurerule-coverageis on.The coverage is saved to the format provided by LCOV, which is what I already explored previously for the vanilla test coverage.
With
cargo test --features rule-coverage, the LCOV files can be created, andgenhtml --flat target/rule-coverage/lcov.info -o target/rule-coverage/html-flatthen creates a report in HTML format that can be viewed.Right now, it looks pretty empty (maybe something is missing?):

I spent only limited effort on validating the mutex-logic and export to LCOV (which I've never used before), but I think the general idea of using a Cargo feature and then piping the results into existing coverage tooling is a good approach.
We can discuss and refine this later of course, I just couldn't help myself but try to hack this together :)